Polar multi-selection

ABSTRACT

A system may include presentation of a visualization including a plurality of elements, detection of a first user input received at a first location of the visualization, determination of one of the plurality of elements located at least partially at the first location, presentation of the one of the plurality of elements as selected, detection of a second user input received at a second location of the visualization, determination of one or more of the plurality of elements located at least partially within a circular sector having a first radius from a third location of the visualization to the first location and a second radius from the third location to the second location, and presentation of the one or more of the plurality of elements located at least partially within the circular sector as selected.

BACKGROUND

Modern computing systems are capable of quickly and efficientlypresenting information. This capability is particularly evident andadvantageous when used to present graphical representations of data.Such graphical representations may consist of visualizations such as bargraphs, pie charts, line charts, etc.

A user may wish to select elements displayed within a visualization orany other type of graphics display. To select an element, the user maymove a cursor onto the element by using a mouse, and then press a mousebutton while the cursor is positioned on the element. Multiple elementsmay be selected by depressing the SHIFT or CTRL keys during thisoperation. In some applications, a user depresses a mouse button while acursor is at a particular location and, without releasing the button,drags the cursor to define a rectangle. When the button is released, allelements within the rectangle are selected. These selection techniquesmay also be applied to touch-sensitive displays, with finger touchesreplacing the mouse movement and button presses.

The foregoing techniques are not efficient, suitable or intuitive insome usage scenarios. Other graphical selection systems are desired.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system according to some embodiments.

FIG. 2 is a flow diagram of a process according to some embodiments.

FIG. 3 is a view of a user interface according to some embodiments.

FIG. 4 is a view of a user interface according to some embodiments.

FIG. 5 is a view of a user interface according to some embodiments.

FIG. 6 is a view of a user interface according to some embodiments.

FIG. 7 is a view of a user interface according to some embodiments.

FIG. 8 is a view of a user interface according to some embodiments.

FIG. 9 is a view of a user interface according to some embodiments.

FIG. 10 is a view of a user interface according to some embodiments.

FIG. 11 is a block diagram of a computing device according to someembodiments.

DETAILED DESCRIPTION

FIG. 1 is a block diagram of system 100 according to some embodiments.FIG. 1 represents a logical architecture for describing processesaccording to some embodiments, and actual implementations may includemore or different components arranged in other manners.

System 100 includes application 110 to provide data of datastore 120 toclient 130. For example, client 130 may send a request for sales figuresto application 110 and, in response, application 110 retrieves therequested figures from datastore 120 and returns them to client 130 fordisplay to a user. System 100 may comprise a standalone apparatus,including but not limited to a desktop computer, a laptop computer, atablet computer, and a smartphone.

Datastore 120 may comprise any one or more systems to store data. Thedata stored in datastore 120 may be received from disparate hardware andsoftware systems, some of which are not interoperational with oneanother. The systems may comprise a back-end data environment employedin a business or industrial context. The data may be pushed to datastore120 and/or provided in response to queries received therefrom. In someembodiments, datastore 120 comprises a fixed disk of a standaloneapparatus which includes client 130 and application 110.

The data of datastore 120 may be stored in a traditional fixed disks orin-memory (e.g., in Random Access Memory) to allow fast retrieval andprocessing thereof. In some embodiments, the data may comprise arelational database, an in-memory database, a multi-dimensionaldatabase, an eXtendable Markup Language (XML) document, and/or any otherstructured data storage system. The physical tables of datastore 120 maybe distributed among several relational databases, dimensionaldatabases, and/or other data sources. To provide economies of scale,datastore 120 may include data of more than one customer. Application110 therefore includes mechanisms to ensure that a client accesses onlythe data that the client is authorized to access. Moreover, the data ofdatastore 120 may be indexed and/or selectively replicated in an index.

Client 130 displays user interfaces and data received from application110, and may also be operated to process such data and send data back toapplication 110 for storage in datastore 120. In some embodiments inwhich application 110 and datastore 120 are elements of a backendenterprise system, client 130 may comprise any suitable device, such asa desktop computer, a laptop computer, a tablet computer, and asmartphone. Client 130 may execute program code of a rich clientapplication, an applet in a Web browser, or any other application toperform the processes attributed thereto herein. According to someembodiments, client 130 executes a standalone application (e.g., aspreadsheet application) which communicates with application 110 via WebServices to retrieve data therefrom.

FIG. 2 comprises flow diagram of process 200 according to someembodiments. In some embodiments, various hardware elements of system100 execute program code to perform process 200. In some embodiments,hard-wired circuitry may be used in place of, or in combination with,program code for implementation of processes according to someembodiments. Embodiments are therefore not limited to any specificcombination of hardware and software.

Initially, at S205, a visualization is presented. The visualizationincludes a plurality of graphical elements. The visualization maycomprise any visually-perceptible arrangement, and may be presented byany device suited for this purpose, including but not limited to amonitor, a touchscreen, a tablet computer, a smartphone, and/or a laptopscreen.

To assist in the present description of an example of process 200, FIG.3 shows a view of display 300 presenting visualization 310 according tosome embodiments. Visualization 310 comprises a pie chart, butembodiments are not limited thereto. The individual sectors of the piechart are the plurality of elements mentioned above.

Visualization 310 may be presented by display 300 in response toexecution of an application (e.g., a spreadsheet application, a Webbrowser, a business analytics application) by a processor. Embodimentsare not limited to these examples.

Next, at S210, a first user input is detected at a first location of thepresented visualization. The input may be provided by using a mouse tomove a cursor to the first location of visualization 310 and depressinga button on the mouse. According to the present example, display 300includes a touch-sensitive input surface to receive input at one or morelocations of visualization 310. Display 300 and the touch-sensitiveinput surface may share one or more hardware and/or software elements.

FIG. 4 illustrates the reception and detection of user input at S210according to some embodiments. Specifically, the user touches location315 of visualization 310. In response, one of the plurality of elementswhich is located at least partially at the first location is determinedat S215. According to the present example, sector 320 is determined atS215 because location 315 lies within sector 320.

Next, at S220, the determined element is presented as selected. Forexample, FIG. 4 shows element 320 with a thicker outline than shown inFIG. 3. Embodiments may employ any graphical technique for presentingelements as selected during process 200. FIG. 4 also depicts thepresentation of indicator 325 connecting first location 315 withlocation 330. Location 330 is the center of visualization 310, andindicator 325 assists the user in identifying the location being touched(i.e., location 315).

A second user input is then detected at a second location at S225. Thesecond user input may comprise a mouse input or a second finger touch asdescribed above. FIG. 5 illustrates an embodiment in which the secondinput comprises a drag input, or swipe input, from the first location tothe second location.

More particularly, arrow 335 indicates that the user has dragged hisfinger from first location 315 to second location 340. FIG. 5 also showsindicator 345 connecting location 340 with location 330. According tosome embodiments, indicator 345 connects location 330 with each locationof visualization that is touched during the aforementioned dragging. Asindicator 345 moves, circular sector 350 is presented, consisting ofindicators 325 and 345 as radii. Sector 350 may be presented using anysuitable graphical technique.

At S230, one or more of the plurality of elements located at leastpartially within such a circular sector is determined. In FIG. 5, onlysector 320 is located at least partially within circular sector 350. Thedetermined one or more elements are presented as selected at S235. Sincesector 320 is already presented as selected, visualization 310 remainsunchanged at S235.

Flow cycles at S240 until another “second” user input is detected. FIG.6 illustrates detection of a second “second” input at S240 according tosome embodiments. As shown by arrow 355, the user has swiped his fingeron to location 360. As also shown, the distance from location 360 tolocation 330 is greater than that shown in FIG. 5. Accordingly, sector365 formed by indicators 325 and 345 exhibits a larger radius thansector 350 of FIG. 5. In other words, the size of sector 365 isdetermined by the length of indicator 345 (i.e., the distance from the“second” location to location 330).

Again, at S230, one or more of the plurality of elements located atleast partially within the new circular sector is determined. Sincesector 370 is located at least partially within circular sector 365,sectors 320 and 370 are determined at S230. Accordingly, sectors 320 and370 are presented as selected at S235.

FIG. 7 shows another second input detected at S240 according to thepresent example. Specifically, the user has dragged his finger tolocation 375, creating circular sector 380 having radii 325 and 345.Therefore, at S230, it is determined that sectors 320, 370, 385 and 390are located at least partially within new circular sector 380, and thesesectors are presented as selected at S235.

FIG. 8 shows another second input detected at S240 according to thepresent example. The user has dragged his finger counter-clockwise tolocation 395, creating circular sector 400 having radii 325 and 345. Itis therefore determined at S230 that sectors 320, 370 and 385 arelocated at least partially within new circular sector 400. Since each ofthese sectors was already presented as selected in FIG. 7, S235comprises de-selecting sector 390 such that only and these sectors 320,370 and 385 are presented as selected.

Some embodiments therefore provide intuitive and efficient selection ofgraphical elements in a radial visualization, such as a pie chart or adonut chart. Embodiments may also provide intuitive and efficientselection of graphical elements in other types of visualizations.

For example, FIG. 9 is a view of display 300 presenting mapvisualization 900 including a plurality of elements (i.e., countries)according to some embodiments. The user has touched location 910,resulting in the presentation of indicator 920 connecting location 930to location 910. Location 930 is located at the center of visualization900, but embodiments are not limited thereto.

Since France and Germany are traversed by indicator 920, both of thesegraphical elements are presented as selected at S220. According to someembodiments, only Germany is presented as selected at S220 becauselocation 910 is located therein.

FIG. 10 illustrates the detection of a second user input at location 940at S225. This detection causes presentation of indicator 950 connectinglocation 930 to location 940, and determination of circular sector 960at S230. It is also determined at S230 that elements France, Germany,Czechoslovakia, Switzerland and Italy are located at least partiallywithin new circular sector 960. Accordingly, each country is presentedas selected at S235.

FIG. 11 is a block diagram of apparatus 1100 according to someembodiments. Apparatus 1100 may comprise a general-purpose computingapparatus and may execute program code to perform any of the functionsdescribed herein. Apparatus 1100 may comprise an implementation of oneor more elements of system 100, and/or of a client device on which thevisualizations of the present description are presented. Apparatus 1100may include other unshown elements according to some embodiments.

Apparatus 1100 includes processor 1110 operatively coupled tocommunication device 1120, data storage device 1130, one or more inputdevices 1140, one or more output devices 1150 and memory 1160.Communication device 1120 may facilitate communication with externaldevices, such as an external design tool. Input device(s) 1140 maycomprise, for example, a touch screen, a mouse or other pointing device,a keyboard, a keypad, a microphone, knob or a switch, an infra-red (IR)port, and/or a docking station. Input device(s) 1140 may be used, forexample, to enter information into apparatus 1100. Output device(s) 1150may comprise, for example, a display (e.g., a display screen) a speaker,and/or a printer.

Data storage device 1130 may comprise any appropriate persistent storagedevice, including combinations of magnetic storage devices (e.g.,magnetic tape, hard disk drives and flash memory), optical storagedevices, Read Only Memory (ROM) devices, etc., while memory 1160 maycomprise Random Access Memory (RAM).

Selection-enabled application(s) 1132 of data storage device 1130 maycomprise program code executable by processor 1110 to provide any one ormore applications providing the functionality described herein.Embodiments are not limited to execution of these functions by a singleapparatus. Data storage device 1130 may also store data and otherprogram code for providing additional functionality and/or which arenecessary for operation thereof, such as device drivers, operatingsystem files, etc.

Other topologies may be used in conjunction with other embodiments.Moreover, each system described herein may be implemented by any numberof computing devices in communication with one another via any number ofother public and/or private networks. Two or more of such computingdevices of may be located remote from one another and may communicatewith one another via any known manner of network(s) and/or a dedicatedconnection. Each computing device may comprise any number of hardwareand/or software elements suitable to provide the functions describedherein as well as any other functions. For example, any computing deviceused in an implementation of system 100 may include a processor toexecute program code such that the computing device operates asdescribed herein.

All systems and processes discussed herein may be embodied in programcode stored on one or more computer-readable non-transitory media. Suchmedia non-transitory media may include, for example, a fixed disk, afloppy disk, a CD-ROM, a DVD-ROM, a Flash drive, magnetic tape, andsolid state Random Access Memory (RAM) or Read Only Memory (ROM) storageunits. Embodiments are therefore not limited to any specific combinationof hardware and software.

The embodiments described herein are solely for the purpose ofillustration. Those in the art will recognize other embodiments may bepracticed with modifications and alterations limited only by the claims.

What is claimed is:
 1. An apparatus comprising: a display to present avisualization comprising a plurality of elements; an input device toreceive user input; and a processor to: detect a first user inputreceived by the input device at a first location of the visualization;determine one of the plurality of elements located at least partially atthe first location; control the display to present the one of theplurality of elements as selected; detect a second user input receivedby the input device at a second location of the visualization; determineone or more of the plurality of elements located at least partiallywithin a circular sector having a first radius from a third location ofthe visualization to the first location and a second radius from thethird location to the second location; and control the display topresent the one or more of the plurality of elements located at leastpartially within the circular sector as selected.
 2. An apparatusaccording to claim 1, wherein the second user input comprises a draginput from the first location to the second location.
 3. An apparatusaccording to claim 1, the processor further to: detect a third userinput received by the input device at a fourth location of thevisualization; determine a second one or more of the plurality ofelements located at least partially within a second circular sectorhaving the first radius from the third location of the visualization tothe first location and a second second radius from the third location tothe fourth location; and control the display to present the second oneor more of the plurality of elements located at least partially withinthe second circular sector as selected, wherein the second one or moreof the plurality of elements includes the one or more of the pluralityof elements and one or more additional ones of the plurality ofelements.
 4. An apparatus according to claim 1, the processor furtherto: detect a third user input received by the input device at a fourthlocation of the visualization; determine a second one or more of theplurality of elements located at least partially within a secondcircular sector having the first radius from the third location of thevisualization to the first location and a second second radius from thethird location to the fourth location; and control the display topresent the second one or more of the plurality of elements located atleast partially within the second circular sector as selected, whereinthe one or more of the plurality of elements includes the second one ormore of the plurality of elements and one or more additional ones of theplurality of elements.
 5. An apparatus according to claim 1, wherein thevisualization comprises a radial chart, and wherein the third locationis the center of the radial chart.
 6. An apparatus according to claim 1,the processor further to: in response to detection of the first input,control the display to present a first indicator connecting the thirdlocation to the first location; and in response to detection of thesecond input, control the display to present a second indicatorconnecting the third location to the second location.
 7. An apparatusaccording to claim 6, wherein the second user input comprises a draginput from the first location to the second location.
 8. Anon-transitory computer-readable medium having program code storedthereon, the program code executable by a processor to cause anapparatus to: present a visualization including a plurality of elements;detect a first user input received at a first location of thevisualization; determine one of the plurality of elements located atleast partially at the first location; present the one of the pluralityof elements as selected; detect a second user input received at a secondlocation of the visualization; determine one or more of the plurality ofelements located at least partially within a circular sector having afirst radius from a third location of the visualization to the firstlocation and a second radius from the third location to the secondlocation; and present the one or more of the plurality of elementslocated at least partially within the circular sector as selected.
 9. Amedium according to claim 8, wherein the second user input comprises adrag input from the first location to the second location.
 10. A mediumaccording to claim 8, the program code executable by a processor tocause an apparatus to: detect a third user input received at a fourthlocation of the visualization; determine a second one or more of theplurality of elements located at least partially within a secondcircular sector having the first radius from the third location of thevisualization to the first location and a second second radius from thethird location to the fourth location; and present the second one ormore of the plurality of elements located at least partially within thesecond circular sector as selected, wherein the second one or more ofthe plurality of elements includes the one or more of the plurality ofelements and one or more additional ones of the plurality of elements.11. A medium according to claim 8, the program code executable by aprocessor to cause an apparatus to: detect a third user input receivedby the input device at a fourth location of the visualization; determinea second one or more of the plurality of elements located at leastpartially within a second circular sector having the first radius fromthe third location of the visualization to the first location and asecond second radius from the third location to the fourth location; andpresent the second one or more of the plurality of elements located atleast partially within the second circular sector as selected, whereinthe one or more of the plurality of elements includes the second one ormore of the plurality of elements and one or more additional ones of theplurality of elements.
 12. A medium according to claim 8, wherein thevisualization comprises a radial chart, and wherein the third locationis the center of the radial chart.
 13. A medium according to claim 8,the program code executable by a processor to cause an apparatus to: inresponse to detection of the first input, present a first indicatorconnecting the third location to the first location; and in response todetection of the second input, present a second indicator connecting thethird location to the second location.
 14. A medium according to claim13, wherein the second user input comprises a drag input from the firstlocation to the second location.
 15. A method comprising: presenting avisualization including a plurality of elements; detecting a first userinput received at a first location of the visualization; determining oneof the plurality of elements located at least partially at the firstlocation; presenting the one of the plurality of elements as selected;detecting a second user input received at a second location of thevisualization; determining one or more of the plurality of elementslocated at least partially within a circular sector having a firstradius from a third location of the visualization to the first locationand a second radius from the third location to the second location; andpresenting the one or more of the plurality of elements located at leastpartially within the circular sector as selected.
 16. A method accordingto claim 15, wherein the second user input comprises a drag input fromthe first location to the second location.
 17. A method according toclaim 15, further comprising: detecting a third user input received at afourth location of the visualization; determining a second one or moreof the plurality of elements located at least partially within a secondcircular sector having the first radius from the third location of thevisualization to the first location and a second second radius from thethird location to the fourth location; and presenting the second one ormore of the plurality of elements located at least partially within thesecond circular sector as selected, wherein the second one or more ofthe plurality of elements includes the one or more of the plurality ofelements and one or more additional ones of the plurality of elements.18. A method according to claim 15, further comprising: detecting athird user input received by the input device at a fourth location ofthe visualization; determining a second one or more of the plurality ofelements located at least partially within a second circular sectorhaving the first radius from the third location of the visualization tothe first location and a second second radius from the third location tothe fourth location; and presenting the second one or more of theplurality of elements located at least partially within the secondcircular sector as selected, wherein the one or more of the plurality ofelements includes the second one or more of the plurality of elementsand one or more additional ones of the plurality of elements.
 19. Amethod according to claim 15, wherein the visualization comprises aradial chart, and wherein the third location is the center of the radialchart.
 20. A method according to claim 15, further comprising: inresponse to detection of the first input, presenting a first indicatorconnecting the third location to the first location; and in response todetection of the second input, presenting a second indicator connectingthe third location to the second location.
 21. A method according toclaim 20, wherein the second user input comprises a drag input from thefirst location to the second location.